#include <termios.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/signal.h>
#include <sys/types.h>
#include <string.h>
#include <pthread.h>

void *bluetooth_listen();

int main(){
	int error=0;
	char buf[4]={0};

	//creo il thread che si mette in listen per attivare il bluetooth:
	pthread_t listener;
	pthread_create(&listener,NULL,bluetooth_listen,NULL);

	sleep(10); //sleep per aspettare che qualcuno si connetta altrimenti il file da errore!

	//il thread main invece scriverà su rfcomm1:
	int fd = open("/dev/rfcomm1", O_RDWR|O_NOCTTY|O_NDELAY| O_APPEND);
	
	if (fd==-1){
		perror("open_port: Unable to open /dev/rfcomm1 - ");
		return 0;
	}
	else{
		while(1){
			//printf("\nDENTRO IL WHILE");
			fcntl(fd, F_SETFL, 0);
			int num_int = (rand()%100);
			char jj[4];
			sprintf(jj, "%d", num_int); //conversione da int a char
			write(fd, jj, 4);
			printf("Numero : %d\n", num_int);
			sleep(1);

		}//fine while(1)
	}//fine else
}

/*
Thread che esegue il comando di shell.
*/
void *bluetooth_listen(){
	int err = system("sudo rfcomm -i hci0 listen 1 2");
	if(err == -1){
		//printf("Errore");
		return(0);
	}
	//printf("\nERR: %d\n",err);
	pthread_exit(0);
}



